<?php
if (!defined("MCTDESIGN")) die("# ");
function check_block($path){
    global $mysql,$tb_fix;
    $q = $mysql->query("select * from ".$tb_fix."_blocks where blo_path = '$path'");
    $t=$mysql->num_rows($q);
    if($t>0){
        return false;
    }else{
        return true;
    }
}
function createBlockFile($dir_name,$mode='w+'){
    $blo_temp_ext = ".mct"; // duoi file temp
    $blo_file_ext = ".php"; // duoi file block
    $dir_name = stripslashes($dir_name);
    $tem_default = temp_default(); // lay temp mac dinh
    $dir_block = "./_blocks/$dir_name";
    $dir_block_tem = "./$tem_default/blocks/$dir_name";
    $mk_dir_block = mkdir($dir_block,0755);
    $mk_dir_block_tem = mkdir($dir_block_tem,0755);
    $err = "";
    if($mk_dir_block){ // tao file php block
       if (!$handle = fopen($dir_block."/".$dir_name.$blo_file_ext, $mode)) 
        	{
        	 $err.= "Không thể tạo file php.";
             return;
        	 exit;
        	}
        $nd_php = "";
        $nd_php.="<?php \n";
        $nd_php.= 'global $dir_tpl, $tb_fix, $temp, $anyDB, $temp; ';
        $nd_php.=" \n \n";
        $nd_php.= '$temp->display("$dir_tpl/blocks/'.$dir_name.'/tpl_'.$dir_name.'.mct");';
        $nd_php.=" \n";
        $nd_php.="?> \n";
        if (!fwrite($handle, $nd_php)) 
        	{
        	$err.= "Không thể ghi dữ liệu vào file php.";
            return;
        	exit;
        	}
        fclose($handle); 
    }else{
        $err.= "Không thể tạo folder blog";
        return;
        exit;
    }
    if($mk_dir_block_tem){ // tao file temp block
       if (!$handle = fopen($dir_block_tem."/tpl_$dir_name".$blo_temp_ext, $mode)) 
        	{
        	 $err.= "Không thể tạo file template block.";
             return;
        	 exit;
        	}
        fclose($handle); 
    }else{
        $err.= "Không thể tạo folder template blog";
        return;
        exit;
    }
    if($err){
        return $err;
    }else{
        return true;
    }
    
}
function add_block(){
    global $dir_tpl, $mysql, $tb_fix,$dir_tpl,$temp;
    isset($_POST['add']) ? $submit = true : $submit = false;
    isset($_POST['blo_name']) ? $blo_name = $_POST['blo_name'] : $blo_name = "";    
    isset($_POST['blo_path']) ? $blo_path = $_POST['blo_path'] : $blo_path = "";
    isset($_POST['blo_status']) ? $blo_status = $_POST['blo_status'] : $blo_status = 1;
    isset($_POST['blo_order']) ? $blo_order = $_POST['blo_order'] : $blo_order = 1;
    isset($_POST['blo_group']) ? $blo_group = $_POST['blo_group'] : $blo_order = 1;
    isset($_POST['blo_position']) ? $blo_position = $_POST['blo_position'] : $blo_position = "giua";
    isset($_POST['blo_position_order']) ? $blo_position_order = $_POST['blo_position_order'] : $blo_position_order = 1;
    isset($_POST['blo_index_position']) ? $blo_index_position = $_POST['blo_index_position'] : $blo_index_position = "tatca";
    if($submit){
        if(empty($blo_path) || empty($blo_order)|| empty($blo_name)){
            $html_body = _html_trans("Chưa nhập đầy đủ thông tin!","?obj=Blocks");
            return $html_body;
            exit();
        }
        if(!intval($blo_order)){
            $html_body = _html_trans("Blog Order phải nhập là số!","?obj=Blocks");
            return $html_body;
            exit();
        }
        if(!check_block($blo_path)){
            $html_body = _html_trans("Block đã có trong database. kiểm tra lại!!","?obj=Blocks");
            return $html_body;
            exit();
        }
       if(!is_valid_dir_name($blo_path)){
            $html_body = _html_trans("Tên folder block không được có ký tự đặc biệt!","?obj=Blocks");
            return $html_body;
            exit();
       }
       $createBlock = createBlockFile($blo_path);
       if($createBlock){
            $sql = "insert into ".$tb_fix."_blocks(blo_name,blo_path,blo_file,blo_author,blo_index_position,tpl_position,blo_position_order,blo_group,blo_order,blo_status)
                    values ('$blo_name','$blo_path','$blo_path.php','ZaiDung','$blo_index_position','$blo_position','$blo_position_order','$blo_group','$blo_order',$blo_status)";
            $q = $mysql->query($sql);
            if($q){
                $html_body = _html_trans("Đã thêm block thành công!","?obj=Blocks");
                return $html_body;
                exit();
            }else{
                $html_body = _html_trans("Có lỗi trong quá trình thêm Block!","?obj=Blocks");
                return $html_body;
                exit();
            }       
            
       }else{
            $html_body = _html_trans($createBlock,"?obj=Blocks");
            return $html_body;
            exit();
       }
    }
}
function edit_block($id){
    global $dir_tpl, $mysql, $tb_fix,$temp;
    $id = (int)$id;
    $sql = "select * from ".$tb_fix."_blocks
            where blo_id = $id
            limit 1";
    $q = $mysql->query($sql);
    $r = $mysql->fetch_array();
    $temp->assign("row",$r);
    $temp->assign("index_vitri",show_index_vitri());
    $temp->assign("vitri",show_vitri());
    $temp->assign("dir_tpl",$dir_tpl);
    $temp->assign("block_group",show_block_group());
    $temp->assign("thutu_block",thutu_block());
    $temp->assign("breakcum",breakcum("Chỉnh sửa Block "));
    $html = $temp->fetch("_adm_edit_block.mct");
    return $html;    
}
function blocks_manager(){
    global $dir_tpl, $mysql, $tb_fix,$temp;
    $query = " blo_path != '' ";    
    if(isset($_POST['indexvitri']) && $_POST['indexvitri']!='all'){
        $indexvitri = $_POST['indexvitri'];
        $query.= " and blo_index_position='$indexvitri' ";
        $temp->assign("idvitri",$indexvitri);
    }
    if(isset($_POST['vitri']) && $_POST['vitri']!='all'){
        $vitri = $_POST['vitri'];
        $query.= " and tpl_position='$vitri' ";
        $temp->assign("vitri1",$vitri);
    }
    if(isset($_POST['vitri_order']) && $_POST['vitri_order']!='all'){
        $vitri_order = $_POST['vitri_order'];
        $query.=" and blo_position_order='$vitri_order' ";
        $temp->assign("vtri_order",$vitri_order);
    }
    if(isset($_POST['blo_group']) && $_POST['blo_group']!='all'){
        $blo_group = $_POST['blo_group'];
        $query.=" and blo_group = '$blo_group' ";
        $temp->assign("blo_selected",$blo_group);
    }    
    $sql = "select * from ".$tb_fix."_blocks
            where $query
            order by blo_order asc";
    $q = $mysql->query($sql);
    $temp->assign("total",$mysql->num_rows($q));
    $r = $mysql->fetch_all_array();
    $temp->assign("index_vitri",show_index_vitri());
    $temp->assign("vitri",show_vitri());
    $temp->assign("rows",$r);
    $temp->assign("dir_tpl",$dir_tpl);
    $temp->assign("thutu_block",thutu_block());
    $temp->assign("block_group",show_block_group());
    $temp->assign("breakcum",breakcum("Quản lý Blocks "));
    $html = $temp->fetch("_adm_blocks.mct");
    return $html;    
}
if(isset($_POST['edit'])){
    global $dir_tpl, $mysql, $tb_fix,$temp;
    isset($_POST['blo_id']) ? $blo_id = $_POST['blo_id'] : $blo_id = "";
    isset($_POST['blo_name']) ? $blo_name = $_POST['blo_name'] : $blo_name = "";
    isset($_POST['blo_path']) ? $blo_path = $_POST['blo_path'] : $blo_path = "";
    isset($_POST['blo_status']) ? $blo_status = $_POST['blo_status'] : $blo_status = "1";
    isset($_POST['blo_order']) ? $blo_order = $_POST['blo_order'] : $blo_order = "";
    isset($_POST['blo_position']) ? $blo_position = $_POST['blo_position'] : $blo_position = "giua";
    isset($_POST['blo_index_position']) ? $blo_index_position = $_POST['blo_index_position'] : $blo_index_position = "tatca";
    isset($_POST['blo_position_order']) ? $blo_position_order = $_POST['blo_position_order'] : $blo_position_order = 1;
    isset($_POST['blo_group']) ? $blo_group = $_POST['blo_group'] : $blo_order = 1;
    if(!empty($blo_name) && !empty($blo_path)  && !empty($blo_order)){
        if(intval($blo_order)){
            $sql = "update ".$tb_fix."_blocks 
                    set blo_name = '$blo_name', blo_path = '$blo_path', blo_index_position = '$blo_index_position', tpl_position = '$blo_position',blo_position_order='$blo_position_order', blo_order = '$blo_order', blo_group = '$blo_group', blo_status = '$blo_status'
                    where blo_id = '$blo_id'
                    ";
            $q = $mysql->query($sql);
            if($q){
                $html_body = _html_trans("Đã cập nhật Block thành công!","?obj=Blocks");
                return $html_body;
                exit();
            }else{
                $html_body = _html_trans("Cập nhật Block không thành công, kiểm tra lại!");
                return $html_body;
                exit();   
            }    
        }else{
            $html_body = _html_trans("Thứ tự bạn phải nhập là số!");
            return $html_body;
            exit();
        }
        
    }else{
        $html_body = _html_trans("Chưa nhập đầy đủ dữ liệu!");
        return $html_body;
        exit();
    }
}
// thu tu block trong cung 1 vi tri
if (isset($_POST['order'])) {

	$total = isset($_POST["total"]) ? intval($_POST["total"]) : 0;

    for ($i=1;$i<=$total;$i++)

      {

           $blo_id    = isset($_POST["order_id_$i"])    ? $_POST["order_id_$i"]    : 0;

           $blo_order = isset($_POST["order_$i"]) ? $_POST["order_$i"] : 0;

           if ( ($blo_id>0)&&($blo_order>0) )

           {		

				$mysql->query("UPDATE ".$tb_fix."_blocks SET blo_order='$blo_order' WHERE blo_id='".$blo_id."'");

           }

    }

	$html_body = _html_trans("Đã cập nhật thứ tự các Blocks thành công !");

	return false;

}
// thu tu vi tri cac block 
if (isset($_POST['block_position_order'])) {

	$total = isset($_POST["total"]) ? intval($_POST["total"]) : 0;

    for ($i=1;$i<=$total;$i++)

      {

           $blo_id    = isset($_POST["block_order_id_$i"])    ? $_POST["block_order_id_$i"]    : 0;

           $blo_order = isset($_POST["block_order_$i"]) ? $_POST["block_order_$i"] : 0;

           if ( ($blo_id>0)&&($blo_order>0) )

           {		

				$mysql->query("UPDATE ".$tb_fix."_blocks SET blo_position_order='$blo_order' WHERE blo_id='".$blo_id."'");

           }

    }

	$html_body = _html_trans("Đã cập nhật vị trí các Blocks thành công !");

	return false;

}
switch($act){
    case "Add":
        $html_body = add_block();
        break;
    case "Edit":
        $html_body = edit_block($id);
        break;
    default:
        $html_body = blocks_manager();
        break;    
}
?>